<?php

/**
 * Docente form base class.
 *
 * @package    form
 * @subpackage docente
 * @version    SVN: $Id: sfDoctrineFormGeneratedTemplate.php 8508 2008-04-17 17:39:15Z fabien $
 */
class BaseDocenteForm extends BaseFormDoctrine
{
  public function setup()
  {
    $this->setWidgets(array(
      'id'                   => new sfWidgetFormInputHidden(),
      'distrito_id'          => new sfWidgetFormDoctrineChoice(array('model' => 'Distrito', 'add_empty' => true)),
      'categoria_docente_id' => new sfWidgetFormDoctrineChoice(array('model' => 'CategoriaDocente', 'add_empty' => true)),
      'codigo'               => new sfWidgetFormInput(),
      'dni'                  => new sfWidgetFormInput(),
      'nombres'              => new sfWidgetFormInput(),
      'apellido_paterno'     => new sfWidgetFormInput(),
      'apellido_materno'     => new sfWidgetFormInput(),
      'fecha_nacimiento'     => new sfWidgetFormDate(),
      'grado'                => new sfWidgetFormChoice(array('choices' => array('Ingeniero' => 'Ingeniero', 'Doctor' => 'Doctor', 'Magister' => 'Magister', 'Licenciado' => 'Licenciado'))),
      'condicion'            => new sfWidgetFormChoice(array('choices' => array('Contratado' => 'Contratado', 'Nombrado' => 'Nombrado', 'Otra Facultad' => 'Otra Facultad'))),
      'dedicacion'           => new sfWidgetFormChoice(array('choices' => array('Tiempo Completo' => 'Tiempo Completo', 'Tiempo Parcial' => 'Tiempo Parcial'))),
      'total_horas'          => new sfWidgetFormInput(),
      'horas_no_lectiva'     => new sfWidgetFormInput(),
      'cumplimiento_metas'   => new sfWidgetFormInput(),
      'direccion'            => new sfWidgetFormInput(),
      'telefono'             => new sfWidgetFormInput(),
      'foto'                 => new sfWidgetFormInput(),
      'celular'              => new sfWidgetFormInput(),
      'correo'               => new sfWidgetFormInput(),
      'descripcion'          => new sfWidgetFormTextarea(),
      'estado'               => new sfWidgetFormInput(),
      'slug'                 => new sfWidgetFormInput(),
      'fecha_creacion'       => new sfWidgetFormDateTime(),
      'fecha_actualizacion'  => new sfWidgetFormDateTime(),
    ));

    $this->setValidators(array(
      'id'                   => new sfValidatorDoctrineChoice(array('model' => 'Docente', 'column' => 'id', 'required' => false)),
      'distrito_id'          => new sfValidatorDoctrineChoice(array('model' => 'Distrito', 'required' => false)),
      'categoria_docente_id' => new sfValidatorDoctrineChoice(array('model' => 'CategoriaDocente', 'required' => false)),
      'codigo'               => new sfValidatorString(array('max_length' => 8)),
      'dni'                  => new sfValidatorString(array('max_length' => 8)),
      'nombres'              => new sfValidatorString(array('max_length' => 40)),
      'apellido_paterno'     => new sfValidatorString(array('max_length' => 50)),
      'apellido_materno'     => new sfValidatorString(array('max_length' => 50)),
      'fecha_nacimiento'     => new sfValidatorDate(array('required' => false)),
      'grado'                => new sfValidatorChoice(array('choices' => array('Ingeniero' => 'Ingeniero', 'Doctor' => 'Doctor', 'Magister' => 'Magister', 'Licenciado' => 'Licenciado'))),
      'condicion'            => new sfValidatorChoice(array('choices' => array('Contratado' => 'Contratado', 'Nombrado' => 'Nombrado', 'Otra Facultad' => 'Otra Facultad'))),
      'dedicacion'           => new sfValidatorChoice(array('choices' => array('Tiempo Completo' => 'Tiempo Completo', 'Tiempo Parcial' => 'Tiempo Parcial'))),
      'total_horas'          => new sfValidatorInteger(array('required' => false)),
      'horas_no_lectiva'     => new sfValidatorInteger(array('required' => false)),
      'cumplimiento_metas'   => new sfValidatorInteger(array('required' => false)),
      'direccion'            => new sfValidatorString(array('max_length' => 70, 'required' => false)),
      'telefono'             => new sfValidatorString(array('max_length' => 9, 'required' => false)),
      'foto'                 => new sfValidatorString(array('max_length' => 45, 'required' => false)),
      'celular'              => new sfValidatorString(array('max_length' => 12, 'required' => false)),
      'correo'               => new sfValidatorString(array('max_length' => 50, 'required' => false)),
      'descripcion'          => new sfValidatorString(array('required' => false)),
      'estado'               => new sfValidatorString(array('max_length' => 1)),
      'slug'                 => new sfValidatorString(array('max_length' => 255, 'required' => false)),
      'fecha_creacion'       => new sfValidatorDateTime(array('required' => false)),
      'fecha_actualizacion'  => new sfValidatorDateTime(array('required' => false)),
    ));

    $this->validatorSchema->setPostValidator(
      new sfValidatorAnd(array(
        new sfValidatorDoctrineUnique(array('model' => 'Docente', 'column' => array('dni'))),
        new sfValidatorDoctrineUnique(array('model' => 'Docente', 'column' => array('codigo'))),
        new sfValidatorDoctrineUnique(array('model' => 'Docente', 'column' => array('slug'))),
      ))
    );

    $this->widgetSchema->setNameFormat('docente[%s]');

    $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);

    parent::setup();
  }

  public function getModelName()
  {
    return 'Docente';
  }

}
